import sys

# 账户信息
per_list = [{'编号': 0, '姓名': '张三', '账户密码': '123', '余额': 1236545},
            {'编号': 1, '姓名': '周六', '账户密码': '234', '余额': 1004565},
            {'编号': 2, '姓名': '王五', '账户密码': '345', '余额': 10004566},
            {'编号': 3, '姓名': '李四', '账户密码': '456', '余额': 1000566}]


# 登录操作
def deng_lu():
    name = input('请输入账户姓名：')
    j = -1
    for i in per_list:
        if i['姓名'] == name:
            j = i['编号']
            key = str(input('请输入密码：'))
            if key == per_list[j]['账户密码']:
                print('=' * 12, '欢迎您，{}'.format(i['姓名']), '=' * 12)
                return per_list[j]['编号']
    if j == -1:
        print('用户不存在。')
        return -1


# 查询操作
def cha_xun(n):
    print('=' * 12, '您的余额为：{}'.format(per_list[n]['余额']), '=' * 12)
    zhi_lin(n)


# 存款操作
def cun_kuan(n):
    i = int(input('请输入存款金额：'))
    per_list[n]['余额'] += i
    print('操作已完成，您目前的余额为：{}'.format(per_list[n]['余额']))
    print('-'*35)
    zhi_lin(n)


# 取款操作
def qu_kuan(n):
    i = int(input('请输入取款金额：'))
    if i <= per_list[n]['余额']:
        per_list[n]['余额'] -= i
        print('操作已完成，您目前的余额为：{}'.format(per_list[n]['余额']))
        print('-'*35)
        zhi_lin(n)
    else:
        print('请输入正确的金额，您的余额为：{}'.format(per_list[n]['余额']))
        qu_kuan(n)


# 业务选择函数
def fun_tion(i):
    print('  {:<10}'.format('存款请按1'), '  {:>14}'.format('取款请按2'))
    print('  {:<10}'.format('余额查询请按3'), '  {:>10}'.format('返回登录界面请按4'))
    print('-'*35)
    y = int(input('请输入操作类型：'))
    if y == 1:
        cun_kuan(i)
    if y == 2:
        qu_kuan(i)
    if y == 3:
        cha_xun(i)
    if y == 4:
        i = deng_lu()
        if i == -1:
            zhu_chengxv()
        fun_tion(i)


# 指令选择函数
def zhi_lin(n):
    print('{:<10}'.format('返回上一级请按1'), '{:>16}'.format('退出请按2'))
    print('-'*35)
    i = int(input('请输入操作类型：'))
    if i == 1:
        fun_tion(n)
    elif i == 2:
        sys.exit()
    else:
        print('操作无效,请重新输入。')
        zhi_lin(n)


# 主程序
def zhu_chengxv():
    while True:
        print('=' * 12, '欢迎使用ATM', '=' * 12, '\n', '-' * 33)
        print('  {:<10}'.format('登录请按1'), '    {:>10}'.format('退出请按2'))
        print('{:^35}'.format('-' * 30))
        j = int(input('请输入操作类型：'))
        if j == 1:
            i = deng_lu()
            if i == -1:
                zhu_chengxv()
            fun_tion(i)
        if j == 2:
            sys.exit()


zhu_chengxv()
